//
//  WBWelcomeView.swift
//  tom微博
//
//  Created by tom king on 2017/9/4.
//  Copyright © 2017年 tom king. All rights reserved.
//

import UIKit
import SDWebImage

/// 欢迎视图
class WBWelcomeView: UIView {

    
    @IBOutlet weak var iconView: UIImageView!
    @IBOutlet weak var tipLabel: UILabel!
    @IBOutlet weak var bottomCons: NSLayoutConstraint!
    
    /// 图标宽度约束
    @IBOutlet weak var iconWidthCons: NSLayoutConstraint!
    class func welcomeView()-> WBWelcomeView {
        let nib = UINib(nibName: "WBWelcomeView", bundle: nil)
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! WBWelcomeView
        
        // 从 XIB 加载的视图，默认是 600*600 的
        v.frame = UIScreen.main.bounds
        
        return v
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        // 提示：initWithCode 只是刚刚从 XIB 的二进制文件将视图数据加载完成
        // 还没有和代码连线建立起关系 所以开发时 千万不要在这个方法中处理 UI
    }
    
    override func awakeFromNib() {
         // 1.url
//        guard let urlString = WBNetworkManager.shared.userAccount.avatar_large,
//        let url = URL(string: urlString)
//              else {
//            return
//        }
        
// FIXME: - 头像加载不出来  是 http 后面没有追加 ‘s’
        let urlString = "https://tva3.sinaimg.cn/crop.0.11.750.750.180/005QHXB2jw8fac9lua6e4j30ku0lgmzf.jpg"
        let url = URL(string: urlString)
        
//        let str: NSMutableString = "http://sdaf"
//        str.insert("s", at: 4)
//            print(str)
        
        // 2.设置头像 - 如果网络图像没有下载完成，先显示占位图像
        // 如果不指定占位图像，之前设置的图像会被清空！
        iconView.sd_setImage(with: url, placeholderImage: UIImage(named : "avatar_default_big"))
        
        
        
        // 设置圆角
//        iconView.layer.cornerRadius = 42.5
        iconView.layer.cornerRadius = iconWidthCons.constant * 0.5
        iconView.layer.masksToBounds = true
    }
    
    // 视图被添加到 window 上，表示视图已经显示
    override func didMoveToWindow() {
        super.didMoveToWindow()
        
        // 视图是使用自动布局来设置的，只是设置里约束
        // - 当视图被添加到窗口上时，根据父视图的大小，计算约束值，更新控件位置
        // - layoutIfNeeded 会直接按照当前的约束直接更新控件位置
        // - 执行之后 控件所在位置 就是 XIB 中的布局的位置
        self.layoutIfNeeded()
        
        bottomCons.constant = bounds.height - 200
        
        // 如果控件们的 frame 还没有机算好！所有的约束会一起动画
        
        UIView.animate(withDuration: 2.0,
                       delay: 0,
                       usingSpringWithDamping: 0.7,
                       initialSpringVelocity: 0,
                       options: [],
                       animations: {
                        // 更新约束
                        self.layoutIfNeeded()
        }) { (_) in
            
            UIView.animate(withDuration: 1.0, animations: {
                self.tipLabel.alpha = 1
            }, completion: { (_) in
                self.removeFromSuperview()
            })
        }
        
    }
    
}
